/** layui-v2.4.5 MIT License By https://www.layui.com */
;layui.define("jquery", function(e) {
    "use strict";
    var a = layui.jquery
        , i = {
        config: {},
        index: layui.rate ? layui.rate.index + 1e4 : 0,
        set: function(e) {
            var i = this;
            return i.config = a.extend({}, i.config, e),
                i
        },
        on: function(e, a) {
            return layui.onevent.call(this, n, e, a)
        }
    }
        , l = function() {
        var e = this
            , a = e.config;
        return {
            setvalue: function(a) {
                e.setvalue.call(e, a)
            },
            config: a
        }
    }
        , n = "rate"
        , t = "layui-rate"
        , o = "layui-icon-rate"
        , s = "layui-icon-rate-solid"
        , u = "layui-icon-rate-half"
        , r = "layui-icon-rate-solid layui-icon-rate-half"
        , c = "layui-icon-rate-solid layui-icon-rate"
        , f = "layui-icon-rate layui-icon-rate-half"
        , v = function(e) {
        var l = this;
        l.index = ++i.index,
            l.config = a.extend({}, l.config, i.config, e),
            l.render()
    };
    v.prototype.config = {
        length: 5,
        text: !1,
        readonly: !1,
        half: !1,
        value: 0,
        theme: ""
    },
        v.prototype.render = function() {
            var e = this
                , i = e.config
                , l = i.theme ? 'style="color: ' + i.theme + ';"' : "";
            i.elem = a(i.elem),
            parseInt(i.value) !== i.value && (i.half || (i.value = Math.ceil(i.value) - i.value < .5 ? Math.ceil(i.value) : Math.floor(i.value)));
            for (var n = '<ul class="layui-rate" ' + (i.readonly ? "readonly" : "") + ">", u = 1; u <= i.length; u++) {
                var r = '<li class="layui-inline"><i class="layui-icon ' + (u > Math.floor(i.value) ? o : s) + '" ' + l + "></i></li>";
                i.half && parseInt(i.value) !== i.value && u == Math.ceil(i.value) ? n = n + '<li><i class="layui-icon layui-icon-rate-half" ' + l + "></i></li>" : n += r
            }
            n += "</ul>" + (i.text ? '<span class="layui-inline">' + i.value + "星" : "") + "</span>";
            var c = i.elem
                , f = c.next("." + t);
            f[0] && f.remove(),
                e.elemTemp = a(n),
                i.span = e.elemTemp.next("span"),
            i.setText && i.setText(i.value),
                c.html(e.elemTemp),
                c.addClass("layui-inline"),
            i.readonly || e.action()
        }
        ,
        v.prototype.setvalue = function(e) {
            var a = this
                , i = a.config;
            i.value = e,
                a.render()
        }
        ,
        v.prototype.action = function() {
            var e = this
                , i = e.config
                , l = e.elemTemp
                , n = l.find("i").width();
            l.children("li").each(function(e) {
                var t = e + 1
                    , v = a(this);
                v.on("click", function(e) {
                    if (i.value = t,
                        i.half) {
                        var o = e.pageX - a(this).offset().left;
                        o <= n / 2 && (i.value = i.value - .5)
                    }
                    i.text && l.next("span").text(i.value + "星"),
                    i.choose && i.choose(i.value),
                    i.setText && i.setText(i.value)
                }),
                    v.on("mousemove", function(e) {
                        if (l.find("i").each(function() {
                            a(this).addClass(o).removeClass(r)
                        }),
                            l.find("i:lt(" + t + ")").each(function() {
                                a(this).addClass(s).removeClass(f)
                            }),
                            i.half) {
                            var c = e.pageX - a(this).offset().left;
                            c <= n / 2 && v.children("i").addClass(u).removeClass(s)
                        }
                    }),
                    v.on("mouseleave", function() {
                        l.find("i").each(function() {
                            a(this).addClass(o).removeClass(r)
                        }),
                            l.find("i:lt(" + Math.floor(i.value) + ")").each(function() {
                                a(this).addClass(s).removeClass(f)
                            }),
                        i.half && parseInt(i.value) !== i.value && l.children("li:eq(" + Math.floor(i.value) + ")").children("i").addClass(u).removeClass(c)
                    })
            })
        }
        ,
        v.prototype.events = function() {
            var e = this;
            e.config
        }
        ,
        i.render = function(e) {
            var a = new v(e);
            return l.call(a)
        }
        ,
        e(n, i)
});
